home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / g_man / cat3 / OpenGL / gltexgen.z / gltexgen
Encoding:
Text File  |  2002-10-03  |  16.2 KB  |  224 lines

  1.  
  2.  
  3.  
  4. ggggllllTTTTeeeexxxxGGGGeeeennnn((((3333GGGG))))                   OOOOppppeeeennnnGGGGLLLL RRRReeeeffffeeeerrrreeeennnncccceeee                   ggggllllTTTTeeeexxxxGGGGeeeennnn((((3333GGGG))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      ggggllllTTTTeeeexxxxGGGGeeeennnndddd,,,, ggggllllTTTTeeeexxxxGGGGeeeennnnffff,,,, ggggllllTTTTeeeexxxxGGGGeeeennnniiii,,,, ggggllllTTTTeeeexxxxGGGGeeeennnnddddvvvv,,,, ggggllllTTTTeeeexxxxGGGGeeeennnnffffvvvv,,,, ggggllllTTTTeeeexxxxGGGGeeeennnniiiivvvv -
  10.      control the generation of texture coordinates
  11.  
  12.  
  13. CCCC SSSSPPPPEEEECCCCIIIIFFFFIIIICCCCAAAATTTTIIIIOOOONNNN
  14.      void ggggllllTTTTeeeexxxxGGGGeeeennnndddd( GLenum _c_o_o_r_d,
  15.                      GLenum _p_n_a_m_e,
  16.                      GLdouble _p_a_r_a_m )
  17.      void ggggllllTTTTeeeexxxxGGGGeeeennnnffff( GLenum _c_o_o_r_d,
  18.                      GLenum _p_n_a_m_e,
  19.                      GLfloat _p_a_r_a_m )
  20.      void ggggllllTTTTeeeexxxxGGGGeeeennnniiii( GLenum _c_o_o_r_d,
  21.                      GLenum _p_n_a_m_e,
  22.                      GLint _p_a_r_a_m )
  23.  
  24.  
  25. PPPPAAAARRRRAAAAMMMMEEEETTTTEEEERRRRSSSS
  26.      _c_o_o_r_d   Specifies a texture coordinate.  Must be one of GGGGLLLL____SSSS, GGGGLLLL____TTTT, GGGGLLLL____RRRR,
  27.              or GGGGLLLL____QQQQ.
  28.  
  29.      _p_n_a_m_e   Specifies the symbolic name of the texture-coordinate generation
  30.              function.  Must be GGGGLLLL____TTTTEEEEXXXXTTTTUUUURRRREEEE____GGGGEEEENNNN____MMMMOOOODDDDEEEE.
  31.  
  32.      _p_a_r_a_m   Specifies a single-valued texture generation parameter, one of
  33.              GGGGLLLL____OOOOBBBBJJJJEEEECCCCTTTT____LLLLIIIINNNNEEEEAAAARRRR, GGGGLLLL____EEEEYYYYEEEE____LLLLIIIINNNNEEEEAAAARRRR, or GGGGLLLL____SSSSPPPPHHHHEEEERRRREEEE____MMMMAAAAPPPP.
  34.  
  35. CCCC SSSSPPPPEEEECCCCIIIIFFFFIIIICCCCAAAATTTTIIIIOOOONNNN
  36.      void ggggllllTTTTeeeexxxxGGGGeeeennnnddddvvvv( GLenum _c_o_o_r_d,
  37.                       GLenum _p_n_a_m_e,
  38.                       const GLdouble *_p_a_r_a_m_s )
  39.      void ggggllllTTTTeeeexxxxGGGGeeeennnnffffvvvv( GLenum _c_o_o_r_d,
  40.                       GLenum _p_n_a_m_e,
  41.                       const GLfloat *_p_a_r_a_m_s )
  42.      void ggggllllTTTTeeeexxxxGGGGeeeennnniiiivvvv( GLenum _c_o_o_r_d,
  43.                       GLenum _p_n_a_m_e,
  44.                       const GLint *_p_a_r_a_m_s )
  45.  
  46.  
  47. PPPPAAAARRRRAAAAMMMMEEEETTTTEEEERRRRSSSS
  48.      _c_o_o_r_d
  49.           Specifies a texture coordinate.  Must be one of GGGGLLLL____SSSS, GGGGLLLL____TTTT, GGGGLLLL____RRRR, or
  50.           GGGGLLLL____QQQQ.
  51.  
  52.      _p_n_a_m_e
  53.           Specifies the symbolic name of the texture-coordinate generation
  54.           function or function parameters.  Must be GGGGLLLL____TTTTEEEEXXXXTTTTUUUURRRREEEE____GGGGEEEENNNN____MMMMOOOODDDDEEEE,
  55.           GGGGLLLL____OOOOBBBBJJJJEEEECCCCTTTT____PPPPLLLLAAAANNNNEEEE, or GGGGLLLL____EEEEYYYYEEEE____PPPPLLLLAAAANNNNEEEE.
  56.  
  57.      _p_a_r_a_m_s
  58.           Specifies a pointer to an array of texture generation parameters.
  59.           If _p_n_a_m_e is GGGGLLLL____TTTTEEEEXXXXTTTTUUUURRRREEEE____GGGGEEEENNNN____MMMMOOOODDDDEEEE, then the array must contain a
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. ggggllllTTTTeeeexxxxGGGGeeeennnn((((3333GGGG))))                   OOOOppppeeeennnnGGGGLLLL RRRReeeeffffeeeerrrreeeennnncccceeee                   ggggllllTTTTeeeexxxxGGGGeeeennnn((((3333GGGG))))
  71.  
  72.  
  73.  
  74.           single symbolic constant, one of GGGGLLLL____OOOOBBBBJJJJEEEECCCCTTTT____LLLLIIIINNNNEEEEAAAARRRR, GGGGLLLL____EEEEYYYYEEEE____LLLLIIIINNNNEEEEAAAARRRR, or
  75.           GGGGLLLL____SSSSPPPPHHHHEEEERRRREEEE____MMMMAAAAPPPP. Otherwise, _p_a_r_a_m_s holds the coefficients for the
  76.           texture-coordinate generation function specified by _p_n_a_m_e.
  77.  
  78. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  79.      ggggllllTTTTeeeexxxxGGGGeeeennnn selects a texture-coordinate generation function or supplies
  80.      coefficients for one of the functions.  _c_o_o_r_d names one of the (_s, _t, _r,
  81.      _q) texture coordinates; it must be one of the symbols GGGGLLLL____SSSS, GGGGLLLL____TTTT, GGGGLLLL____RRRR,
  82.      or GGGGLLLL____QQQQ.  _p_n_a_m_e must be one of three symbolic constants:
  83.      GGGGLLLL____TTTTEEEEXXXXTTTTUUUURRRREEEE____GGGGEEEENNNN____MMMMOOOODDDDEEEE, GGGGLLLL____OOOOBBBBJJJJEEEECCCCTTTT____PPPPLLLLAAAANNNNEEEE, or GGGGLLLL____EEEEYYYYEEEE____PPPPLLLLAAAANNNNEEEE. If _p_n_a_m_e is
  84.      GGGGLLLL____TTTTEEEEXXXXTTTTUUUURRRREEEE____GGGGEEEENNNN____MMMMOOOODDDDEEEE, then _p_a_r_a_m_s chooses a mode, one of GGGGLLLL____OOOOBBBBJJJJEEEECCCCTTTT____LLLLIIIINNNNEEEEAAAARRRR,
  85.      GGGGLLLL____EEEEYYYYEEEE____LLLLIIIINNNNEEEEAAAARRRR, or GGGGLLLL____SSSSPPPPHHHHEEEERRRREEEE____MMMMAAAAPPPP. If _p_n_a_m_e is either GGGGLLLL____OOOOBBBBJJJJEEEECCCCTTTT____PPPPLLLLAAAANNNNEEEE or
  86.      GGGGLLLL____EEEEYYYYEEEE____PPPPLLLLAAAANNNNEEEE, _p_a_r_a_m_s contains coefficients for the corresponding texture
  87.      generation function.
  88.  
  89.      If the texture generation function is GGGGLLLL____OOOOBBBBJJJJEEEECCCCTTTT____LLLLIIIINNNNEEEEAAAARRRR, the function
  90.  
  91.                            g = p x  + p y  + p z  + p w
  92.                                 1 o    2 o    3 o    4 o
  93.  
  94.      is used, where g is the value computed for the coordinate named in _c_o_o_r_d,
  95.      p , p , p , and p  are the four values supplied in _p_a_r_a_m_s, and x , y ,
  96.       1   2   3       4                                              o   o
  97.      z , and w  are the object coordinates of the vertex.  This function can
  98.       o       o
  99.      be used, for example, to texture-map terrain using sea level as a
  100.      reference plane (defined by p , p , p , and p ). The altitude of a
  101.                                   1   2   3       4
  102.      terrain vertex is computed by the GGGGLLLL____OOOOBBBBJJJJEEEECCCCTTTT____LLLLIIIINNNNEEEEAAAARRRR coordinate generation
  103.      function as its distance from sea level; that altitude can then be used
  104.      to index the texture image to map white snow onto peaks and green grass
  105.      onto foothills.
  106.  
  107.      If the texture generation function is GGGGLLLL____EEEEYYYYEEEE____LLLLIIIINNNNEEEEAAAARRRR, the function
  108.  
  109.                                  '       '       '       '
  110.                            g = p x  + p y  + p z  + p w
  111.                                 1 e    2 e    3 e    4 e
  112.  
  113.      is used, where
  114.  
  115.                          '    '    '    '                      -1
  116.                       (p   p   p   p ) = (p   p   p   p ) M
  117.                         1   2   3   4      1   2   3   4
  118.  
  119.  
  120.      and x , y , z , and w  are the eye coordinates of the vertex, p , p , p ,
  121.           e   e   e       e                                         1   2   3
  122.      and p  are the values supplied in _p_a_r_a_m_s, and M is the modelview matrix
  123.           4
  124.      when ggggllllTTTTeeeexxxxGGGGeeeennnn is invoked.  If M is poorly conditioned or singular,
  125.      texture coordinates generated by the resulting function may be inaccurate
  126.      or undefined.
  127.  
  128.      Note that the values in _p_a_r_a_m_s define a reference plane in eye
  129.      coordinates. The modelview matrix that is applied to them may not be the
  130.      same one in effect when the polygon vertices are transformed. This
  131.      function establishes a field of texture coordinates that can produce
  132.      dynamic contour lines on moving objects.
  133.  
  134.      If _p_n_a_m_e is GGGGLLLL____SSSSPPPPHHHHEEEERRRREEEE____MMMMAAAAPPPP and _c_o_o_r_d is either GGGGLLLL____SSSS or GGGGLLLL____TTTT, s and t
  135.      texture coordinates are generated as follows. Let _u be the unit vector
  136.      pointing from the origin to the polygon vertex (in eye coordinates). Let
  137.  
  138.  
  139.  
  140.                                                                         PPPPaaaaggggeeee 2222
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147. ggggllllTTTTeeeexxxxGGGGeeeennnn((((3333GGGG))))                   OOOOppppeeeennnnGGGGLLLL RRRReeeeffffeeeerrrreeeennnncccceeee                   ggggllllTTTTeeeexxxxGGGGeeeennnn((((3333GGGG))))
  148.  
  149.  
  150.  
  151.      _n sup prime be the current normal, after transformation to eye
  152.      coordinates. Let
  153.  
  154.                                                  T
  155.                                  f = (f   f   f )
  156.                                        x   y   z
  157.  
  158.      be the reflection vector such that
  159.  
  160.                                                T
  161.                                             ' '
  162.                                   f = u - 2n n  u
  163.  
  164.                          _____________________
  165.  
  166.                         |  2     2           2
  167.      Finally, let m = 2                       f   + f   + (f  + 1) . Then the values assigned to
  168.                        \|  x     y      z
  169.      the s and t texture coordinates are
  170.  
  171.                                          f
  172.                                          x__    1_
  173.                                     s =    +
  174.                                         m    2
  175.  
  176.                                          f
  177.                                          y__    1_
  178.                                     t =    +
  179.                                         m    2
  180.  
  181.  
  182.      To enable or disable a texture-coordinate generation function, call
  183.      ggggllllEEEEnnnnaaaabbbblllleeee or ggggllllDDDDiiiissssaaaabbbblllleeee with one of the symbolic texture-coordinate names
  184.      (GGGGLLLL____TTTTEEEEXXXXTTTTUUUURRRREEEE____GGGGEEEENNNN____SSSS, GGGGLLLL____TTTTEEEEXXXXTTTTUUUURRRREEEE____GGGGEEEENNNN____TTTT, GGGGLLLL____TTTTEEEEXXXXTTTTUUUURRRREEEE____GGGGEEEENNNN____RRRR, or
  185.      GGGGLLLL____TTTTEEEEXXXXTTTTUUUURRRREEEE____GGGGEEEENNNN____QQQQ) as the argument. When enabled, the specified texture
  186.      coordinate is computed according to the generating function associated
  187.      with that coordinate. When disabled, subsequent vertices take the
  188.      specified texture coordinate from the current set of texture coordinates.
  189.      Initially, all texture generation functions are set to GGGGLLLL____EEEEYYYYEEEE____LLLLIIIINNNNEEEEAAAARRRR and
  190.      are disabled.  Both s plane equations are (1, 0, 0, 0), both t plane
  191.      equations are (0, 1, 0, 0), and all r and q plane equations are (0, 0, 0,
  192.      0).
  193.  
  194. EEEERRRRRRRROOOORRRRSSSS
  195.      GGGGLLLL____IIIINNNNVVVVAAAALLLLIIIIDDDD____EEEENNNNUUUUMMMM is generated when _c_o_o_r_d or _p_n_a_m_e is not an accepted
  196.      defined value, or when _p_n_a_m_e is GGGGLLLL____TTTTEEEEXXXXTTTTUUUURRRREEEE____GGGGEEEENNNN____MMMMOOOODDDDEEEE and _p_a_r_a_m_s is not an
  197.      accepted defined value.
  198.  
  199.      GGGGLLLL____IIIINNNNVVVVAAAALLLLIIIIDDDD____EEEENNNNUUUUMMMM is generated when _p_n_a_m_e is GGGGLLLL____TTTTEEEEXXXXTTTTUUUURRRREEEE____GGGGEEEENNNN____MMMMOOOODDDDEEEE, _p_a_r_a_m_s is
  200.      GGGGLLLL____SSSSPPPPHHHHEEEERRRREEEE____MMMMAAAAPPPP, and _c_o_o_r_d is either GGGGLLLL____RRRR or GGGGLLLL____QQQQ.
  201.  
  202.      GGGGLLLL____IIIINNNNVVVVAAAALLLLIIIIDDDD____OOOOPPPPEEEERRRRAAAATTTTIIIIOOOONNNN is generated if ggggllllTTTTeeeexxxxGGGGeeeennnn is executed between the
  203.      execution of ggggllllBBBBeeeeggggiiiinnnn and the corresponding execution of ggggllllEEEEnnnndddd.
  204.  
  205. AAAASSSSSSSSOOOOCCCCIIIIAAAATTTTEEEEDDDD GGGGEEEETTTTSSSS
  206.      ggggllllGGGGeeeettttTTTTeeeexxxxGGGGeeeennnn
  207.      ggggllllIIIIssssEEEEnnnnaaaabbbblllleeeedddd with argument GGGGLLLL____TTTTEEEEXXXXTTTTUUUURRRREEEE____GGGGEEEENNNN____SSSS
  208.      ggggllllIIIIssssEEEEnnnnaaaabbbblllleeeedddd with argument GGGGLLLL____TTTTEEEEXXXXTTTTUUUURRRREEEE____GGGGEEEENNNN____TTTT
  209.      ggggllllIIIIssssEEEEnnnnaaaabbbblllleeeedddd with argument GGGGLLLL____TTTTEEEEXXXXTTTTUUUURRRREEEE____GGGGEEEENNNN____RRRR
  210.      ggggllllIIIIssssEEEEnnnnaaaabbbblllleeeedddd with argument GGGGLLLL____TTTTEEEEXXXXTTTTUUUURRRREEEE____GGGGEEEENNNN____QQQQ
  211.  
  212.  
  213. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  214.      ggggllllCCCCooooppppyyyyPPPPiiiixxxxeeeellllssss, ggggllllCCCCooooppppyyyyTTTTeeeexxxxIIIImmmmaaaaggggeeee2222DDDD, ggggllllCCCCooooppppyyyyTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee1111DDDD, ggggllllCCCCooooppppyyyyTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee2222DDDD,
  215.      ggggllllCCCCooooppppyyyyTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee3333DDDD, ggggllllTTTTeeeexxxxEEEEnnnnvvvv, ggggllllTTTTeeeexxxxIIIImmmmaaaaggggeeee1111DDDD, ggggllllTTTTeeeexxxxIIIImmmmaaaaggggeeee2222DDDD, ggggllllTTTTeeeexxxxIIIImmmmaaaaggggeeee3333DDDD,
  216.      ggggllllTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrr, ggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee1111DDDD, ggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee2222DDDD, ggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee3333DDDD
  217.  
  218.  
  219.  
  220.                                                                         PPPPaaaaggggeeee 3333
  221.  
  222.  
  223.  
  224.